package com.atguigu.java;

import org.junit.Test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Properties;

/**
 * @author yihu
 * @create 2021-06-16 11:31
 * @email:1057202547@qq.com
 * @dec: 了解类的加载器
 */
public class ClassLoaderTest {
    @Test
    public void test1(){
        //对于自定义类，使用系统类加载器进行加载
        ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();
        System.out.println(classLoader);

        //调用系统类加载器的getParent()：获取扩展类加载器
        ClassLoader classLoader1 = classLoader.getParent();
        System.out.println(classLoader1);

        //调用扩展类加载器的getParent()：无法获取引导类加载器
        //引导类加载器主要负责加载java的核心类库，无法加载自定义类的
        ClassLoader classLoader2 = classLoader1.getParent();
        System.out.println(classLoader2); //null 引导类加载器,无法获取到

        ClassLoader classLoader3 = String.class.getClassLoader();
        System.out.println(classLoader3);//null 引导类加载器,无法获取到

    }

    /*
       Properties：用来读取配置文件。
     */
    @Test
    public  void test2() throws Exception {
        Properties pros = new Properties();

        //此时的文件默认在当前的module下
        //读取配置文件的方式一：
        // FileInputStream fis = new FileInputStream("jdbc.properties"); //idea
        // pros.load(fis);

        //读取配置文件的方式二：类的加载器
        //配置文件默认识别为：当前module的src下
        ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();
        InputStream is = classLoader.getResourceAsStream("jdbc1.properties");
        pros.load(is);

        String user = pros.getProperty("user");
        String pwd = pros.getProperty("passwod");

        System.out.println("user= " + user + ";pwd = " + pwd);


    }






}
